how do i implement cache in go